import type { AppRouteModule } from '/@/router/types';

import { LAYOUT } from '/@/router/constant';
import { t } from '/@/hooks/web/useI18n';

const system: AppRouteModule = {
  path: '/system',
  name: 'System',
  component: LAYOUT,
  redirect: '/system/account',
  meta: {
    orderNo: 2,
    icon: 'ion:settings-outline',
    title: t('routes.demo.system.moduleName'),
  },
  children: [
    {
      path: 'account',
      name: 'AccountManagement',
      meta: {
        title: t('routes.demo.system.account'),
        ignoreKeepAlive: false,
      },
      component: () => import('/@/views/demo/system/account/index.vue'),
    },
    {
      path: 'role',
      name: 'RoleManagement',
      meta: {
        title: t('routes.demo.system.role'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/role/index.vue'),
    },
    {
      path: 'menu',
      name: 'MenuManagement',
      meta: {
        title: t('routes.demo.system.menu'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/menu/index.vue'),
    },
    {
      path: 'dept',
      name: 'DeptManagement',
      meta: {
        title: t('routes.demo.system.dept'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/dept/index.vue'),
    },
    {
      path: 'message',
      name: 'MsgManagement',
      meta: {
        title: t('routes.demo.system.message'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/message/index.vue'),
    },
    {
      path: 'dictionary',
      name: 'DicManagement',
      meta: {
        title: t('routes.demo.system.dictionary'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/dictionary/index.vue'),
    },
    {
      path: 'setting',
      name: 'AccountSettingPage',
      meta: {
        title: t('routes.demo.system.accountSetting'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/setting/index.vue'),
    },
    {
      path: 'fileTypeSetting',
      name: 'fileTypeSettingPage',
      meta: {
        title: t('routes.demo.system.fileTypeSetting'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/fileTypeSetting/index.vue'),
    },
    {
      path: 'partSetting',
      name: 'partSettingPage',
      meta: {
        title: t('routes.demo.system.partSetting'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/partSetting/index.vue'),
    },
    {
      path: 'figureDocSetting',
      name: 'figureDocSettingPage',
      meta: {
        title: t('routes.demo.system.figureDocSetting'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/figureDocSettings/index.vue'),
    },
    {
      path: 'PartAndDrawing',
      name: 'PartAndDrawingPage',
      meta: {
        title: t('routes.demo.system.partFigureDocRelation'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/PartAndDrawings/index.vue'),
    },
    {
      path: 'CounterSettings',
      name: 'CounterSettingsPage',
      meta: {
        title: t('routes.demo.system.counterSetting'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/CounterSettings/index.vue'),
    },
    {
      path: 'FormSettings',
      name: 'FormSettingsPage',
      meta: {
        title: t('routes.demo.system.formSetting'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/demo/system/formSetting/index.vue'),
    },
  ],
};

export default system;
